package hawk.example.bookstore.support;

import static java.sql.Types.*;

import glz.hawkframework.mybatis.sql.MybatisParam;
import glz.hawkframework.sql.support.PhysicalTable;
import glz.hawkframework.sql.support.impl.DefaultAliasedNamedColumn;
import glz.hawkframework.sql.support.impl.DefaultPhysicalTable;

public class BookSupport {
    public static final PhysicalTable BOOK = new DefaultPhysicalTable("BOOK");
    public static final DefaultAliasedNamedColumn BOOK_ID = new DefaultAliasedNamedColumn("BOOK_ID", "bookId");
    public static final DefaultAliasedNamedColumn ISBN = new DefaultAliasedNamedColumn("ISBN", "isbn");
    public static final DefaultAliasedNamedColumn TITLE = new DefaultAliasedNamedColumn("TITLE", "title");
    public static final DefaultAliasedNamedColumn PRICE = new DefaultAliasedNamedColumn("PRICE", "price");
    public static final DefaultAliasedNamedColumn PUBLISH_DATE = new DefaultAliasedNamedColumn("PUBLISH_DATE", "publishDate");
    public static final DefaultAliasedNamedColumn BOOK_CATEGORY = new DefaultAliasedNamedColumn("BOOK_CATEGORY", "bookCategory");
    public static final DefaultAliasedNamedColumn PUBLISHER_ID = new DefaultAliasedNamedColumn("PUBLISHER_ID", "publisherId");
    public static final DefaultAliasedNamedColumn CREATE_DATE_TIME = new DefaultAliasedNamedColumn("CREATE_DATE_TIME", "createDateTime");
    public static final DefaultAliasedNamedColumn UPDATE_DATE_TIME = new DefaultAliasedNamedColumn("UPDATE_DATE_TIME", "updateDateTime");
    public static final DefaultAliasedNamedColumn DELETE_DATE_TIME = new DefaultAliasedNamedColumn("DELETE_DATE_TIME", "deleteDateTime");
    public static final DefaultAliasedNamedColumn CREATE_USER_ID = new DefaultAliasedNamedColumn("CREATE_USER_ID", "createUserId");
    public static final DefaultAliasedNamedColumn UPDATE_USER_ID = new DefaultAliasedNamedColumn("UPDATE_USER_ID", "updateUserId");
    public static final DefaultAliasedNamedColumn DELETE_USER_ID = new DefaultAliasedNamedColumn("DELETE_USER_ID", "deleteUserId");
    public static final DefaultAliasedNamedColumn RECORD_VERSION = new DefaultAliasedNamedColumn("RECORD_VERSION", "recordVersion");
    public static final DefaultAliasedNamedColumn[] COLUMNS = new DefaultAliasedNamedColumn[]{BOOK_ID, ISBN, TITLE, PRICE, PUBLISH_DATE, BOOK_CATEGORY, PUBLISHER_ID, CREATE_DATE_TIME, UPDATE_DATE_TIME, DELETE_DATE_TIME, CREATE_USER_ID, UPDATE_USER_ID, DELETE_USER_ID, RECORD_VERSION};
    public static final MybatisParam PARAM_BOOK_ID = MybatisParam.builder("bookId", NUMERIC).build();
    public static final MybatisParam PARAM_ISBN = MybatisParam.builder("isbn", VARCHAR).build();
    public static final MybatisParam PARAM_TITLE = MybatisParam.builder("title", VARCHAR).build();
    public static final MybatisParam PARAM_PRICE = MybatisParam.builder("price", NUMERIC).build();
    public static final MybatisParam PARAM_PUBLISH_DATE = MybatisParam.builder("publishDate", DATE).build();
    public static final MybatisParam PARAM_BOOK_CATEGORY = MybatisParam.builder("bookCategory", VARCHAR).build();
    public static final MybatisParam PARAM_PUBLISHER_ID = MybatisParam.builder("publisherId", NUMERIC).build();
    public static final MybatisParam PARAM_CREATE_DATE_TIME = MybatisParam.builder("createDateTime", TIMESTAMP).build();
    public static final MybatisParam PARAM_UPDATE_DATE_TIME = MybatisParam.builder("updateDateTime", TIMESTAMP).build();
    public static final MybatisParam PARAM_DELETE_DATE_TIME = MybatisParam.builder("deleteDateTime", TIMESTAMP).build();
    public static final MybatisParam PARAM_CREATE_USER_ID = MybatisParam.builder("createUserId", VARCHAR).build();
    public static final MybatisParam PARAM_UPDATE_USER_ID = MybatisParam.builder("updateUserId", VARCHAR).build();
    public static final MybatisParam PARAM_DELETE_USER_ID = MybatisParam.builder("deleteUserId", VARCHAR).build();
    public static final MybatisParam PARAM_RECORD_VERSION = MybatisParam.builder("recordVersion", NUMERIC).build();
    public static final MybatisParam[] PARAM_COLUMNS = new MybatisParam[]{PARAM_BOOK_ID, PARAM_ISBN, PARAM_TITLE, PARAM_PRICE, PARAM_PUBLISH_DATE, PARAM_BOOK_CATEGORY, PARAM_PUBLISHER_ID, PARAM_CREATE_DATE_TIME, PARAM_UPDATE_DATE_TIME, PARAM_DELETE_DATE_TIME, PARAM_CREATE_USER_ID, PARAM_UPDATE_USER_ID, PARAM_DELETE_USER_ID, PARAM_RECORD_VERSION};
}
